package Metier.Objets;

import java.sql.Timestamp;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class Commande {
    private int id;
    private ModePaiement modePaiement;
    private Timestamp date;

    //Liste des produits de la commande et quantité associé
    private Map<Produit, Integer> produitCommande;

    private float prixTotal;

    public Commande() {
        id = 0;
        modePaiement = ModePaiement.AUTRES;
        Date d = new Date();
        date = new Timestamp(d.getTime());
        produitCommande = new HashMap<>();
        prixTotal = 0;
    }

    public Commande(int id, ModePaiement modePaiement,
                    Map<Produit, Integer> produitCommande,
                    float prixTotal) {
        this.id = id;
        this.modePaiement = modePaiement;
        Date d = new Date();
        date = new Timestamp(d.getTime());
        this.produitCommande = produitCommande;
        this.prixTotal = prixTotal;
    }

    public Commande(int id, ModePaiement modePaiement,
                    Timestamp date,
                    Map<Produit, Integer> produitCommande,
                    float prixTotal) {
        this.id = id;
        this.modePaiement = modePaiement;
        this.date = date;
        this.produitCommande = produitCommande;
        this.prixTotal = prixTotal;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public ModePaiement getModePaiement() {
        return modePaiement;
    }

    public void setModePaiement(ModePaiement modePaiement) {
        this.modePaiement = modePaiement;
    }

    public Timestamp getDate() {
        return date;
    }

    public void setDate(Timestamp date) {
        this.date = date;
    }

    public Map<Produit, Integer> getProduitCommande() {
        return produitCommande;
    }

    public void setProduitCommande(HashMap<Produit, Integer> produitCommande) {
        this.produitCommande = produitCommande;
    }

    public float getPrixTotal() {
        return prixTotal;
    }

    public void setPrixTotal(float prixTotal) {
        this.prixTotal = prixTotal;
    }
}
